User's Guide to Melodia / Table Sequencer Software and documentation Copyright (c) 1993-1994 John Dunn. All Rights Reserved. Introduction: Melodia/TS is one of a series of Melodia algorithmic music composing programs. These are attempts to free musical artists from the tyranny of a tradition that grew out of the physical limitations of the medium, just as photography freed visual artists. They do not try to replace the traditional methods. They do offer a completely new medium with new rules and with different strengths and limitations. Overview: Melodia/TS consists of two video pages: Play, and Compose. You can combine the Play and Compose pages into one screen with the "Zoom" menu command, or you can flip between them with the "Page" command. To exit the program, save files, or to do some specialized stuff such as setting MIDI sync or changing the Sequencer or Table data (more about this later), you can pop up the "File" menu at any time. The Play page gives you control over which instruments are playing at any given time, and their rhythms, timbres, and volumes. An instrument along with its performance controls is represented by one of 16 horizontal lines on the Play page and is called a "voice." The top two lines of the Play Page control the playing of a composition by stepping through up to 64 stages. Each stage is a snapshot of the current settings of the Play page connections. The usual process for composing a piece of music is to set up a pattern on the first stage, then to step through the following stages and progressively modify the sound: bring up more voices, fade the current ones out, etc. Selecting "Strt" will then step through the stages, playing each one for the number of measures you selected. The Compose Page is where you select the pitch, timing, and other relationships, where you compose your music. Unlike Melodia/Pro, which has several different algorithmic processors that you plug together in various ways, Melodia/TS has but one type of processor, the Table Sequencer. There are twelve of them, each identical in every way. Use one or use them all, but in either case there is only one to learn. At the bottom of the page are the Box Clocks, which control rhythm. These are also very different from the clocks in Melodia/Pro. Melodia/TS clocks are bouncing balls confined within a box. You change the rhythm components by resizing the boxes. This turns out to be rather fun and surprisingly musical. There are six boxes, with each of the four sides of each box available as a clock which "ticks" each time a ball hits the box edge. On-line Help and Color Codes: Every active area on the Melodia/TS screen has a built in help line that is printed at the bottom of the screen when you press the right mouse button. The rule is simple: click the right mouse button to see what an area does, click the left button to do it. You can hold the right button down and move the mouse about the screen to get a quick scan of what all the controls in the area do. Each help line will indicate which of the three mouse gestures you need to use for the function: "Click" is simply a left mouse click. Often you will get additional feedback (such as the control changing color) if you hold the button down for a moment when you click it. "Dial" means to move the mouse left or right while holding the left button down. The control you are changing will be highlighted while you are dialing it. When you reach the desired value, release the left mouse button - the value will remain, the highlight will go away, and the mouse cursor will reappear. "Slide" or "Drag" is similar to Dial, except it is used on the sliding bar controls and when moving or resizing the clock boxes. While holding the left mouse button down, slide left or right. "Drag" implies you can move up or down as well. The value of the control will change as will its position on the bar. Release the mouse button to select the value. In addition to the on-line help, the controls have a consistent color coding that tell you at a glance how a control functions. White, green, cyan (light blue), and magenta (purple) indicate an active control that can be changed by the mouse. Yellow labels are informational only and cannot be changed by the mouse. Some of these are documented by the on-line help, but most of them are simply documented as: "Not an active area." The power behind Melodia's scheme is that most control inputs take either values or connections. Values are just that, numeric values you dial in. These will be colored white for values from 0 to 99, and magenta for values from 100 to 127. Since 0-127 is the MIDI value range, this is also the range used by Melodia/TS. Connections are the value at the output of one of the Compose Page sequencers. You get these by dialing a value left past zero. It will turn green and take on the label of the connected output. Play Page: The Play Page is divided into two parts: the top of the page controls global parameters such as tempo and the actual sequencing of the stages. It is the computer equivalent of the conductor. The rest of the page consists of the sixteen lines that control the voices. These are like the musicians in the orchestra. Voice Controls: To get sound, the first thing you must do is click on the blue square on the far left of the voice line you want to "fire up." When a voice is on, the mute switch will be bright red, when the voice is off (mute) the switch will be blue. The Mute/Solo switch is just above the four groups of four (sixteen total) voice lines. When in Mute ("M") mode, the leftmost red/blue mute switches that select and identify which voice is active can have any combination of voices on or off that are changed by/remembered by the Page Sequencer on the top line. When in Solo ("S") mode the switch setting is not remembered by or changed by the Page Sequencer. The column of little dots just after the Mute switch is the copy protect dot for the entire voice. There are also copy protect dots for each group of functions within the voice. These allow you to protect parts of a page when you copy one page to another. More about this later. The column labeled "Ch" selects the MIDI channel for the voice. If you are using a multiple line MIDI interface there will be 16 channels for each line, with the first line at 0-15, the second at 16-31 and so on. You are free to change the channels at any time, to any value. This gives you the ability to freely move from one set of instruments to another. Only 16 will play at any given time, but you can actually use dozens of different channels in a single composition. "Pc" is the Program Change column. This sends a MIDI Program Change command to the channel when the voice is first started (either by turning on the Mute switch or by releasing the Halt switch), or when the value is changed. "Tsp" is Transpose. It is a value that is added to the "Kb" (Keyboard note value) input. Think of it as the lowest possible pitch the voice can play. When you dial the notes, notice that there are no flats. Although you can easily set up any scale in any key you wish within the 12-tone system, the 128 notes recognized by MIDI are given their absolute C-major names. The octave of middle C, for example runs consecutively from MIDI note 60 = C/5. The next column, "Clk" is actually three items grouped together with no space between. Together, they control the rhythmic feel of the voice. The first two of these control the actual rhythm, the third controls pitch delay that strongly influences perceived rhythm. The first of these, the magenta letter icon, is the Clock selector. This does not select a Box Clock output directly, rather it selects one of the Table Sequencers in the Compose page, also starting with magenta labels A-L. Whatever Box Clock is driving the Table Sequencer line (this can be changed rapidly) will also trigger the voice note. The default is for the first voice to get clock A, the second to get B, etc. But this is arbitrary, and you can make whatever connections you wish. All clock selectors have a range of A-L for the 12 Table Sequencer lines. The note icon controls the action of the clock beat. You can change it to one of four settings: a legato (maximum "on" time) every clock tick, a normal note every clock tick, a note only when the pitch changes, and a legato note only when the pitch changes. If you think you should be getting sound from a voice but aren't, check that you have a note icon with a double flag (normal note every clock tick). Last of the three is the Pitch Delay selector. This value can be changed by dialing from 0 to 9, then A to F, a total of 16. Its purpose is to delay the pitch for the number of clock ticks given. At 0 there is no delay; at 1 there is a delay of one tick; at 2, two ticks; and so on up to a delay of 15 ticks at F. To understand this effect, set two voices to the same pitch pattern and the same clock, then dial a low number into one (only) of the two voices. You will hear the pattern bounce from one voice to another. "Kb," the Keyboard input (improperly named since there is no keyboard), determines the pitch of a note. It is always combined with "Tps," Transpose, just before being sent to the MIDI channel. Along with every note sent to MIDI there is also a value called "Velocity" (labeled "Vl") that represents to MIDI how hard you are hitting the key. It is supported by most synthesizers, usually making the note louder and brighter with higher values. There are three Kb inputs, but only two Vl inputs. The first Kb uses the first Vl value, and the 2nd and 3rd Kb use the same, 2nd Vl value. A velocity of 0 tells MIDI to turn the note off, so if the first Vl is 0, the first Kb note will not be sent, and if the 2nd Vl is 0, the 2nd and 3rd Kb notes will not be sent. For added flexibility, the Kb inputs are combined in different ways according to whether the 2nd Vl is 0. If the 2nd Vl is set to a value (not connection) of 0, the 2nd and 3rd Kb inputs (which otherwise would be unused since 0 turns their MIDI note generation off) are added to the 1st Kb input. If the 2nd Vl is on (anything other than 0), the value of the first Kb will be added to the 2nd and 3rd Kb inputs. This gives you the option of having multiple pitch inputs to a single note: When you use the 1st Kb and Vl to produce the note, and the 2nd Vl is off (set to 0), the 2nd and 3rd Kb inputs act as additional transpose inputs to the 1st Kb. Used another way, and it gives you an easy way to produce chords: With the 2nd Vl on, the 2nd and 3rd Kb inputs act as interval offsets to the root value of the 1st Kb input. It doesn't matter whether the 1st Vl is on or off. If it is on you get a 3 note chord, if it is off you get two notes. Put another way, the 2nd and 3rd Kb inputs will produce two simultaneous notes if their shared Vl is on (not zero). The pitch will be a combination of the respective Kb input plus the 1st Kb input plus the Tsp (transpose) setting. Additionally, a third simultaneous note will be produced if the 1st Vl is also on, and its pitch will be a combination of the 1st Kb input plus the Tsp setting. Finally, if the 2nd Vl input is off (zero), the 2nd and 3rd Kb inputs do not produce notes, but their values are added to the 1st Kb, so that the pitch of the single note produced (assuming the 1st Vl is on) will be a combination of all 3 Kb inputs plus the Tsp setting. Following the note controls are the global modulation controls which, like the Program Change control discussed earlier, affect all notes generated by the selected MIDI channel. Because of this, it is best to assign every voice a unique MIDI channel. If two or more voice use the same MIDI channel, the last modulation control sent will remain in effect for all those voices. "At," Aftertouch, also called Channel Pressure, is supported in different ways by different synths, sometimes by different patches on the same synth. Often it is used as a crossfade from one sound to another. Experiment with this one. All of the inputs following are MIDI Control Change inputs. MIDI Control Change sends two parameters to the synth, the control number which identifies what the parameter is used for, and the value of the parameter. You only work with the value to send, the control number will be determined by the input you use. MIDI control numbers are more or less standardized, although few synths recognize all of them. Most synths support the standard control numbers for Volume, Modulation, and Pan. Other control numbers tend to be used for some patches in some synths, and not used for others. Control Change numbers used by Melodia/TS are the most commonly supported, (almost) standardized ones. However you can optionally change any Control Change number by running the setup program, "TSSETUP." "Fp" is the Foot Pedal controller, MIDI Control Change #4. There is little agreement on what effect this should have; different synths use it in different ways, or not at all. "Pt" is Portamento Time, MIDI Control Change #5. It is supported by most synths that are not sample based. Some modern sample based synths support it as well, although few of the older ones do. This sets the portamento time, and a second switch input (described next) will turn portamento on and off. The column of green dots labeled "PSN" are on/off switches. The first two are MIDI Control Changes that are interpreted as full on or full off by most synths. Click on them to switch from off (0) to on (127). When on, the green dot turns to a bright yellow circle. The first of the three, "P" is the Portamento switch mentioned above. It is MIDI Control Change #65. The 2nd switch, "S" is the Sustain (sometimes called "Damper Pedal") switch, MIDI Control Change #64. These switches are not uniformly implemented in all synths. The third switch, labeled "N," does not send a Control Change to MIDI. Instead, when on it inhibits Melodia from sending Note-off messages. The acoustic effect of this on most synths is similar to the Sustain switch, the sounds are layered as thickly as the synth can handle. The "N" switch is especially useful when using a Melodia voice line to control light controllers, which generally do not like to receive MIDI Note-Off messages. "Bc," following the switches, is Breath Controller, MIDI Control Change #2. Not uniformly implemented, but when it is you can often get striking results by using a moving value. This input is unique because it sends its output to MIDI whenever it is changed rather than only at the beginning of a note. Be careful with this, as a very rapidly moving input could overload the MIDI line. Such MIDI clogging does no harm, but it may cause timing errors. "Md," is Modulation, MIDI Control Change #1. It acts like the modulation wheel on a keyboard synth, usually adding vibrato or tremolo to the sound. Modulation is well supported. "Pan" moves sound from left (Pan value 0) to right (Pan value 127). It is MIDI Control Change #10, and it is supported by most synths. The arrow at the left of the Pan control is the polarity switch. Click on it to switch from up to down. When down, the ranges for Left and Right are switched. This is very useful to control pan of two voices so they move about but always remain symmetrical. For a simple example of this, dial the green connection "R8" (which will generate a random number between 0 and 127) into two pan inputs of two voices, with one arrow set up and the other down. Dial the same clock into the two voices. You should get a very live bounce of the sounds as they randomly pan left and right, but remain separated. Pan defaults to a mid value, 63, which has a special significance. When set to this value, Melodia does not send any Pan message at all. This allows synths such as the Proteus that loose internal pan settings when they receive an external message to retain the internal settings. "Vol," Volume is MIDI Control Change #7, well-supported but also changeable by Setup. In the default setup, the Fade slider control to the right uses the same Control Change number as the Vol input, with the Fade value limiting the maximum volume actually sent. For example, if the Fade slider is set to "9," the maximum value that Vol will actually send to MIDI is 72 (9 * 8 steps per Fader click) regardless of the value at the Vol input. When Fade is set to 0, it acts as a mute for the voice, not allowing any MIDI signals to pass through to the synth. The Fade slider becomes especially useful when you start building a multiple stage composition. This is because of the Slew control to its left, which turns the Fade slider into an automated mixing console. By setting Slew values to anything other than 0, the Fade slider will automatically fade from the value at the last step, toward the setting at the current step. Volumes will instantly jump to their settings if Slew = 0, or if the Halt control is clicked. Slew times increase as the value increases and are not affected by the Tempo setting. Thus, 0=instant, 1=fastest slew, 127=slowest. Automated Mixer Interface: The Fade sliders may optionally configured to control automated mixers, independent of the MIDI volume sent by Vol. There is a powerful advantage of using an automated mixer in large setups because all inputs not actively producing music are muted and therefore do not add to the background noise level. To control an automated mixer with the Melodia fader controls, run TSSETUP and select option 6, "Change Fader Control #'s?" In the default mode, there will be only one option, "Primary fade base control #," which defaults to "voice," meaning the faders use the same Control Change as the voice line's Vol control. At any time, you can return this option to its default by giving the input -1. Melodia assumes the automated mixer uses groups of consecutive MIDI Control Change messages to control volumes, but beyond that there is considerable flexibility built in to accommodate most mixers. The following example describes how to configure CM Automation's MX-816 to control 8 stereo synth module outputs, with each synth using 2 Melodia voice lines. Run TSSETUP and select option 6, "Change Fader Control #'s?" then set as follows: 1. Primary fade base control # .. 20 (whatever the MX-816 is set to) 2. Primary fade channel.......... 1 (whatever controls the MX-816) 3. Secondary fade base control# 28 (left is 20-27, right is 28-35) 4. Secondary fade channel........ 1 (only 1 MX-816) 6. Initialization Pgm Change # ... 100 (turns off all MX-816 inpust) 7. Shutdown Pgm Change # ......... 101 (turns on all MX-816 inputs) The following setup uses two MX-816 mixers (both set up identically, one used for left front & back, the other for right front & back) and 8 stereo synth modules to give a 4-channel mix: 1. Primary fade base control # .. 20 (whatever the MX-816 is set to) 2. Primary fade channel.......... 1 (whatever controls the MX-816) 3. Secondary fade base control# 28 (front is 20-27, back is 28-35) 4. Secondary fade channel........ 1 (both MX set to same channel) 6. Initialization Pgm Change # ... 100 (turns off all MX-816 inpust) 7. Shutdown Pgm Change # ......... 101 (turns on all MX-816 inputs) Conductor Controls: The two lines of controls at the top of the Play page are mostly for the Page Sequencer. You can and probably should spend a lot of time with Melodia without ever using the Page Sequencer. But once you have mastered the basics, you will find that these controls will give you the tools to turn your sound patterns into complete compositions. The idea behind the Page Sequencer is to give you tools to progressively alter your music in stages that can smoothly transition from one to the next. There are up to 64 pages, each of which can last from 1 to 999 measures. You build your composition by developing your musical themes, then by copying each page to the next, and modifying that in some way. Turn voices on, fade others out, change modulation, musical themes, etc. At any time you can insert copies of earlier pages, delete pages, and so on. Then, when you click on the Strt control, the pages will play, each for the number of measures you have specified, from start to finish. The main page controls are the top line Strt, Stop, and Cont commands and the blue page set line, plus the measure control. Before you can use the Page Sequencer, you have to dial in the number of measures you want a page to play. You do this by dialing a number into the rightmost green control on the second line that initially says "M=Stop." Dial to the right for a measure count, dial to the left for Stop, Exit, or Loop. When in the default Stop mode, Melodia plays the current page until you select Halt or exit the program. Stop doesn't stop playing, it simply stops advancing pages. Halt, on the line below, stops and starts playing. Exit is the same as Stop, except it will also exit the program. It will only Exit the program if two conditions are met. First, you have to be in Play or Cont, second you have to had opened Melodia with a filename at the command line: TS MYMUSIC. By selecting Exit instead of Stop, when you load it with a file name as described above, it will start playing as soon as it is called, and exit after it is finished; you can even set up a DOS batch file that will run a series of compositions automatically. To run several pieces from a batch file, save each piece so that it ends with Exit, then edit a text file (giving it an extension of ".bat") so that each line calls TS with the file you want to run. For example, edit a file named MYCOMP.BAT to look something like this: TS PART1 TS PART2 TS PART3 TS FINALE Use "Save As.." from the DOS text editor to give the file its name ("MYCOMP.BAT"). The .BAT file has to be in the main TS directory. To run your batch file, simply type its name instead of TS. If this is all confusing to you, ask DOS for help. Type "help edit," or "help copy," or simply "help." If you have DOS Version 5.0 or later, it will tell you about itself. For earlier versions you will have to consult the DOS manual. The light blue number just to the right of the measure control is the readout of the current measures played on the current page. This is set to 0 when the page is first entered, and starts counting up according to the values defined in the tempo and time signature. Tempo, just to the right of Halt, selects the musical tempo in quarter notes per minute. The time signature selects the number of beats per measure / the note value of the beat. The default of 4/4 is four quarter notes per measure. 3/4 would be 3 quarter notes per measure. 2/8 is two eighth notes per measure. When you change these values, it will affect the total playing time of your piece. This will be indicated by the changed total time indicator on the far right of the line. To the right of the time signature is the Dots control. This turns the write protect dots on and off all at a time. The write protect dots are the little green dots just to the left of each voice line and each of the Aux MIDI and clock lines on the bottom of the Compose page. When on (high yellow), the line is protected from being changed by Pop, Top and Prev. You can use Dots to turn them all on or off, then click on the individual dots to selectively flip them. Pop, Top, and Prev are all ways to copy a previous page onto the current one. To use Pop or Top, you will first have to Push a page onto the page stack. Then you can fetch it with Pop, or copy it with Top. Prev simply copies the previous page, and is perhaps the most useful of these. Compose Page: There are two parts to the Compose page. The Sequencer modules take up the top three fourths of the page, the Box Clock modules are on the bottom quarter. Clocks: As the name implies, the clocks control the timing of events. In Melodia/TS there are two types of clocked events. These are the actual note triggers in the Play area that send a MIDI Note On message, discussed in the Play section above; and the inner loop step of the table sequencer which will be discussed below. The clocks in Melodia/TS are unique. They are a bouncing ball confined within a box. The size of the box plus the speed of the bouncing ball determines the clock rate. There is a clock assigned to each of the four sides of a box, four clocks to a box. The six boxes are labeled A, E, I, M, Q, and U - which are the first of the four clocks assigned to the particular box: A = ABCD, E = EFGH, and so on. Along the left edge of the screen there is a column of white/grey clock labels with the yellow label "CK" above. These turn the clocks on and off. The green dots to the left of the labels are the protection dots for each of the six Box Clocks. The Box Clocks themselves float in the clear area toward the bottom of the screen. You can move them around however you want and it is ok to overlap them. The green label on the upper left corner of the boxes is the "handle" that will move them around. Click on the label and, while continuing to depress the left mouse button, slide the box into a new position and then release the mouse button. The square dot in the lower right corner is the size control. Click and drag to change the box size. The height and width dimensions will read out on the blue help line at the bottom of the screen. These numbers relate to the movement of the ball, so that doubling the number will half the clock rate. The speed of the ball can be controlled by changing the number in the lower right corner of the box. This number represents MIDI timing ticks. These are relative clock ticks, not actual time values. For example a quarter note is always 24 ticks, an eighth note 12 ticks, and so on. The actual duration of a quarter note is set by the Tempo; however long the duration is, an eighth note will always be half that. The fastest clock speed you can dial is a rate of 2. This is one tick on and one tick off, two ticks total. The note value is a 32nd triplet. Clocks are automatically synchronized whenever you select Strt or Halt. However if you are using a second sequencer you may want to synchronize remotely, or you may want your other sequencer to know when Melodia/TS has synchronized. Melodia/TS uses the MIDI Tune Request signal for this. It is used only if you have enabled Sync send or receive (see File Menu). If you have another synth that uses Tune Request, you can disable its use by Melodia/TS by running the TSSETUP program. Sequencers: The Table Sequencers take up the top 3/4th of the Compose page. There are 12 of them, labeled from A to L. They run the full width of the screen, and each one is identical. The basic idea of these sequencers is to provide smart multi level stage sequencing, similar in concept to what was available on the old modular studio synthesizers, but far more sophisticated. Each sequencer is composed of an inner loop Pitch Sequencer with a pitch output that can change at each inner loop clock tick, and an outer loop Control Sequencer that is incremented once for each inner loop sequence, and that has 5 control outputs that change in time with the outer loop. Additionally, the Page Sequencer at the top of the Conductor screen controls the Box Clock settings and all of the input connections to the top 16 voice lines. As an overview: the Page Sequencer, which has a total of 64 steps, is the master conductor which controls all the Play area connections as well as the Box Clock settings. The Page Sequencer is stepped by the measure counter (M= on the second line from the top in the Play area). The twelve Table Sequencers in the Compose area are actually double sequencers with an inner loop stepped by the Box Clocks and an outer loop stepped by the inner loop cycle counter. That is, the outer Control Sequencer steps when the inner loop Pitch Sequencer has cycled a certain number of times as set by the "Rp" column. The interactions among these three levels of sequencing gives a virtually infinite but highly controllable range of musical patterns. Pitch Table and Sequencer: The rows of dots with the gray labels "012...." are used both to define the inner loop Pitch Sequencer events, and to address the table of pitches that are the source material for the music pitches. There are twelve rows to the Pitch Table and there are twelve Pitch Sequencers, but each of the Pitch Sequencers can access any of the twelve Pitch Table lines. The default is for Pitch Sequencer A to use Pitch Table row A, B to use B, and so on. But you can change this however you want, by dialing the L (Line) control just to the right of the dots area. Control Sequencer: While the pitches are being generated at the clock rate of the inner loop Pitch Sequencer, which is generally set to the same as the MIDI voice that will be playing the sequence, the outer loop sequencer more slowly steps through its stages. It is called the Control Sequencer because it controls the inner loop direction and repeat count and because it generates a more slowly changing set of output values that are usually used for MIDI control inputs such as Velocity and Modulation. How It Goes Together: Inner Loop: 1. The clock triggers the next pitch stage of the pitch sequencer. 2. When the pitch sequencer reaches its end, it decrements its repeat count. Outer Loop: 3. When the repeat count goes below zero, it triggers the next control stage. 4. The control sequencer sets the next clock direction, a box clock connection, a new repeat count, and a new range (blue squares) for the pitch sequencer; and new control value outputs. Here is an item by item description of the sequencer controls, going from left to right. Remember each horizontal line is one complete sequencer, and all 12 sequencers are identical. Starting with the leftmost column, magenta letters A-D, E-H, and I-L, labeled "E" at top.... Label and End: These serve a dual purpose. First, they are simply the label names for the sequencers. When you dial a connection to one of the sequencers, you will get a lower case letter that represents the output and an upper case letter that represents which of the 12 sequencers is generating it. For example the first connection past 0 is "pA" which indicates it is the pitch output of the first line sequencer, "A." The second purpose of the "E" column is to set the end point of the outer loop stage sequencer. The numbers to the right in blue angle brackets indicate the current stage. When you click on the magenta label, it will highlight indicating that this is now the last stage of the sequence. If you click on a highlighted label, the end stage will be set to the maximum stage number (255). When the end stage is reached, the sequencer goes to stage 0, and continues (loops). Stage Hold: These dots stop the stage counter from incrementing when the inner loop repeat count goes to zero. The inner sequencer will continue playing but it will stay on the same pattern until the hold is removed by clicking a second time. The topmost dot sets and unsets stage hold for all 12 sequencers. Stage: The number is the current stage. Dial left or right to change. The angle brackets increment or decrement by one. There are up to 256 stages available, 000 - 255. Clock: These are the connections to the Box Clock outputs. This is the heartbeat of the sequencer line and of the MIDI line that is connected to it through its magenta clock input. Note that the MIDI voice lines do not directly connect to the Box Clocks. The magenta voice clock controls point to a Table Sequencer line, not to a Box Clock; whichever Box Clock is driving the sequencer line will also drive the voice note generation. This subtlety allows you to switch Box Clock connections at the Table Sequencer, yet always remain in sync with the note output. Autofill: Clock settings and all other Control Sequencer values have an autofill feature that saves time when manually setting the values. The red label above the column sets all values from the current stage to the End (as set by the Label/End) to the current value. Click on the red label to arm it. It will highlight. To disarm, click on it again and the highlight will go out. When it is highlighted, click on one of the values below it. The highlight will go out, and all values from the current position to the End will be changed to the current value. Clock Direction: Select which direction the current pitch sequence will step. Can be changed each outer loop step. Repeat Count: Select how many times to repeat a pitch sequence before incrementing to the next stage. Repeat of 0 plays through the sequence from where it was left by the last stage through to the end. Thus a repeat of 0 could play just one note (the last one) of a sequence. To insure at least one complete playing of a pitch sequence, set the repeat count to 1 or greater. Up to 15 repeats are allowed per stage, with the numbers going from 0-9, then A-F. Pitch Sequencer Hold: These dots freeze the pitch sequencer, and by side effect also stop the outer loop stage sequencer. They are used to stop the sequencer while you adjust parameters. Click a second time to unfreeze. The top dot freezes all 12 sequencers. Pitch Table Sequences: The rows of dots and squares labeled "0123..." display and allow you to change the inner loop pitch sequences for each outer loop control stage. The squares indicate the range of the pitch sequence for the current stage. The red square indicates the current pitch selection from the pitch table, which is also a table of 36 pitches by 12 sequencer lines. To change the sequence range, click outside of the row of squares, and slide the mouse left or right. To select a pitch, click on the inside of the range on one of the blue squares or the red square (current pitch selection), and slide mouse left or right. Pitch Line Selector: This column, labeled "L," sets the Pitch Table lines that will be addressed by the Pitch Table Sequencers. The default is for sequencer line A to address table line A, B to B, and so on. But any sequencer can address any table line and can change lines at every outer loop step. Pitch Selector: Labeled "No," these both display and allow you to change the pitches in the pitch table. The specific position of the pitch in the table is indicated by the red square in the Pitch Sequencer to the left. Dial left or right to select the pitch. You can switch between pitch and MIDI value readout by clicking on the blue dot at the top of the column. Pitch Invert: When set (down-arrow) the pitch from the pitch table is inverted. This is a simple subtraction from 12. This control is selected for duration of the outer loop stage, not for the individual pitch. Pitch Offset: This is a value or connection that is added to the pitch selection before being sent to the output. This control is selected for the outer loop control stage, not for the individual pitch. Pitch Value Output: This is a label that indicates the current value of the pitch output. This is the actual value that is delivered to a "p" connection (pA - pL, one for each of the 12 sequencer lines). You can switch between pitch and MIDI value readout by clicking on it. Control Value Output with Slew: These are labeled S#v - S#x. When you dial them as a connection, they read vA - vL, wA - wL, and xA - xL. They may be changed on each control sequencer (outer loop) step. The cyan single digit number under the label "S" is the slew control. This sets the rate of slew that the value will have when changing from a previous value to the current value. Lower numbers slew faster, 0 is instant. Change the slew or the control value by dialing left or right. Control Value Output: The last two columns are simple control values that may be changed at each control sequencer step. They are identical to the above except they do not have a slew control. The connection labels are yA - yL, and zA - zL. Auxiliary MIDI Outputs: In the lower right corner of the Compose Page. These allow you to send just a MIDI Program Change or Control Change to control additional equipment such as reverb units. Click on the blue dot to enable, it will highlight and send the current Program Change or Control Change (whichever is enabled) to the MIDI channel that has been set in the leftmost column ("Ch"). When enabled (button is red) every time the value is changed it is sent to MIDI. Virtual value connections: The following connection do not appear as controllable modules, however they may be used as input connections. Random value generators: These 16 connections are labeled ?0 - ?F. They deliver a new random number every computer cycle. The range of values produced by the random generator vary according to which generator is used: ?0 - ?3 produce a number between 0 and 63 ?4 - ?7 produce a number between 32 and 95 ?8 - ?F produce a number between 0 and 127 Since the voice line inputs on the Play page only look when their clock ticks, these rapidly changing random numbers are sampled as needed by the inputs that use them. The exception to this are Volume ("Vo") and Breath Control ("Bc") inputs, which sample continuously. Connecting these inputs to a random generator will result in MIDI data clog, and will not be useful (although it will cause no harm). Fade values: The 16 Fade slider values on the Play page are available through virtual process connections. They are labeled %0 to %F. Although only 16 steps are setable with the Fade sliders, when the Faders slew they go through the full 0-127 MIDI value range. MIDI Program Change received: Whenever a MIDI Program Change is sent to the computer by an external MIDI device, its value can be accessed by these 16 virtual processes. These are labeled @0 - @F. If you aren't generating external Program Changes, these will be 0. File Menu: At its most basic level, the File menu lets you load and save a piece of music, and it lets you exit the program. Even these functions can be ignored if you wish. You can exit simply by typing the ESC key. If you have modified your music in any way, you will be notified, and you can type "S" to Save or "D" to Discard, or you can select those choices with the mouse from the pop up box. Unless you have changed the current name, your music will be given the name "Default." Next time you enter Melodia/TS, your music will automatically be loaded. In order to give maximum flexibility, Melodia/TS uses several different types of data files; in order to make it easy to use, different files are handled as a group by the File Menu. If you prefer, you can ignore the distinction and the program will keep track of everything automatically. Save: The Save box at the upper left of the File menu can be clicked to save your work at any time. If there is a check mark in front of Save, the file had been modified, a dot means no modification has been made since the last Save. You can click on the check mark to force it on or off. If you change a check to a dot, you will not be asked to save your file when you exit unless you make new changes to it. Be careful with this, as it could cause you to lose work. Erase: Erase will erase the music files associated with the current name. It will ask you for confirmation, giving you the name of the file set it is about to erase. If you select "OK," the files will be lost and you cannot recover them. You must always load the files into the workspace before you erase them. After you erase, the working name is set to "DEFAULT." Changing Save Name: The current working name is in the box under Save and Erase, in highlighted white text. You can change this by clicking on it and then typing a new name. If you type a DOS-illegal character, it will be changed to the $ character, which is legal for DOS filenames. If you hit a space, all characters past the space are erased. When you hit the Enter key, the new name will become your working name. If the previous workspace had been modified, you will be asked to Save or Discard it, then you will be asked whether to Load, Overwrite, or New. Load will load the existing file set, if none is found it will load the default setup. Overwrite will do nothing, so that the next time you Save, your current music will overwrite the old. It is like "Save as..." in the DOS editor. New will erase the workspace so you have a new slate to work with. Loading Music Files: The column of names under the current working name are music files that you can load. Click on them and they will load, after first giving you a chance to save the current workspace if it had been modified. If you have more saved files than can be seen in the box, you can scroll them with the green happy face icon on the right edge of the box. Three different files are required for a complete music workspace. These are: Music (.MUS) files that contain the data in the 64 steps of the Play area Page Sequencer, which control all the connections and values of the voice lines in the Play Page. This is a binary file and is not directly editable except within Melodia. If this file is corrupted Melodia will behave unpredictably. Sequencer files (.STG) that contain the data in the 256 steps of the Control Sequencer and the addressing data in the Pitch Sequencer. This is also a binary file that is not editable except within Melodia. Pitch table files (.TBL) that contain the pitches used by the inner loop Pitch Sequencer. These files are in ASCII format and may be edited by a text processor such as DOS EDIT, or may be generated or modified by an external program. The files follow the Track Sequencer dot area layout turned 90 degrees so you can see all 12 lines. That is, the 12 lines are shown as the 12 columns of pitch data, and the 36 steps are arranged as 36 lines of text. It is important that the positions of the columns not be changed. If you edit this file, use Overwrite mode of your text editor so all of the 3 character pitch/octave values are in columns separated by a single space. Melodia/TS always saves all three files, and when you load a workspace it loads the three files if it finds them. If it does not find a particular file, it will set the MUS file to default, and it will (intelligently) generate random values for STG and TBL files. If you don't want the random values, use NEW to clear the workspace. At any time, you can load a work file from another piece of music into your current work file. Do this by clicking on the names Music, Stage or Table in the box below the file area. Whichever name you click on will get a check mark and the file name area will change to show just those types of files. Click on the file name area to load that file into your current workspace, or click on the checked name to uncheck (cancel) it. Rand: If you click on Stage or Table, in addition to a check mark you will also see "Rand" appear in the lower right of the File menu. This gives you the option of generating a new set of random values for either of these files. Stage Rand generates random clock directions, clock repeat counts, and Pitch Sequencer addressing (dots). Every other time you generate Stage Rand, the pitch table Line ("L") control is also randomized. Table Rand generates a new Pitch Table. The source pitches used is in the file RNOTE.DAT in the main TS directory. This is simply a table of 32 numbers from 0 to 12, arranged in no particular order. For each Pitch Table value, Rand generates a random number from 0 to 31 and selects the value at that position for the next pitch. Since there are only 13 pitches allowed (0-12) and there are 32 table selections, you control the frequency of particular pitches by repeating them in the RNOTE file. The format of this file is very forgiving. Rand simply looks for numbers and ignores any other characters. Since octave values are generated separately by Rand, if you give numbers above 12, Rand will strip out the octave part and just use the 0-11 pitch part. Sync: MIDI Sync, Start, Stop, Continue, and Song Number signals can be sent by Melodia/TS, or it can "listen" for those signals and be controlled by them. Click on "Sync" in the File menu to set the item you want to send or receive. When MIDI sync is sent, other sequencers should be set to receive; when sync is received, one (only) other device should be set to send sync. Start, Stop and Continue are sent by the respective Melodia/TS conductor commands on the top line of the Play page. When S/S/C is set to receive, those MIDI messages will act as a remote control to Melodia/TS causing to it start, stop, or continue playing. Song number, when sending, sends the current step sequencer number (top line of Play), when receiving, Melodia/TS will jump to the step sequencer number sent as a MIDI song number. Speed Star: On very complex or very fast pieces a yellow star may start to blink in the lower right hand corner of the screen. This is an indication that your computer is running out of processing time. A little blink of the star from time to time is normal. However a steady showing indicates the timing is inaccurate and your music will likely run at a different speed on a faster computer. Reducing overall tempo (top of Play page), then increasing individual clock rates helps. About the Author: Melodia/TS was written by John Dunn. John has been a pioneer in computer music and art since the mid 70's when he combined microcomputers and analog sound and video synthesizers as a graduate student at the Art Institute of Chicago. He was one of the early programmers for Atari video games, and he developed the first ever professional paint program for a microcomputer, Cromemco's "Slidemaster," released in 1981. John went on to write a major paint program for the IBM-PC, called "Lumena," and founded Time Arts Inc. of Santa Rosa, California, to market "Computer Tools for Artists." In 1984 he wrote one of the first algorithmic composing programs for MIDI, "MusicBox," which was released with full source code to the public domain two years later. MusicBox is still available on CompuServe some and other data services that support MIDI. DISCLAIMER OF WARRANTY: THIS SOFTWARE IS SOLD "AS IS" AND WITHOUT WARRANTIES AS TO PERFORMANCE OF MERCHANTABILITY OR ANY OTHER WARRANTIES WHETHER EXPRESSED OR IMPLIED. BECAUSE OF THE VARIOUS HARDWARE AND SOFTWARE ENVIRONMENTS INTO WHICH THIS PROGRAM MAY BE PUT, NO WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE IS OFFERED. THE USER MUST ASSUME THE ENTIRE RISK OF USING THE PROGRAM. ANY LIABILITY OF THE SELLER WILL BE LIMITED EXCLUSIVELY TO PRODUCT REPLACEMENT OR REFUND OF PURCHASE PRICE. Copyright Notice: Melodia/TS is Copyright (C) 1993-1994 by John Dunn. All rights reserved. Forth nucleus Copyright 1989 LMI.